#ifndef _CONSTANTVALUE_
#define _CONSTANTVALUE_

#include "Expression.h"
#include "../ValueType.h"
#include <string>

using namespace std;

struct ConstantValue: public Expression
{

    ConstantValue(long iValue);
    ConstantValue(double iValue);
    ConstantValue(string* iValue);
    virtual ~ConstantValue();
    virtual ExpressionType* GetType(map<string, ExpressionType*>& iVarTypes, string iParentName);
    virtual void Accept(GeneralVisitor* iVisitor);


    union Value
    {
        long LongValue;
        double DoubleValue;
        string* StringValue;
    };

    ValueType fType;
    Value fValue;
};

#endif
